Grundkurs SQL

2.3.2  Die Grundform mit WHERE

Bedingungen und Operatoren

Nun haben wir bisher immer alle Mitarbeiter angezeigt bekommen. Uns interessieren aber nur einige wenige – oder nur ein einzelner – die ein bzw. mehrere Kriterien erfüllen.
Zur Lösung wird dies einfach als weitere Bedingungen in die WHERE-Zeile übernommen. Da es sich um zusätzliche Einschränkungen handelt, müssen wir sie mit AND verknüpfen.
Um eine Zeile nicht zu lang werden zu lassen, können wir für jedes Schlüsselwort (besonders AND) eine neue Zeile beginnen. Wir werden für unsere letzte Anweisung noch ein paar Bedingungen und die WHERE-Zeile dafür aufschreiben.

Um alle Mitarbeiter aus der Abteilung Einkauf anzuzeigen, lautet die komplette WHERE-Anweisung:

SELECT tbl_titel.titel, name, abteilungsname, abteilung_aufgabengebiet
FROM   tbl_abteilung, tbl_titel, tbl_mitarbeiter
WHERE  tbl_abteilung.abteilung_ID=tbl_mitarbeiter.abteilung_ID
       AND tbl_titel.titel_ID=tbl_mitarbeiter.titel_ID
       AND tbl_abteilung.abteilungsname = "Einkauf"

Abfrage ausführen 

 

Um alle Mitarbeiter der Firma anzuzeigen, die in der Abteilung Lager beschäftigt werden und die im Postleitzahlenbereich 014.. wohnen oder mehr als 540,00 Euro Bruttolohn im Monat bekommen (oder beides), schreiben wir:

SELECT tbl_titel.titel, name, abteilungsname, bruttolohn, plz
FROM   tbl_abteilung, tbl_titel, tbl_mitarbeiter
WHERE  tbl_abteilung.abteilung_ID=tbl_mitarbeiter.abteilung_ID
       AND tbl_titel.titel_ID=tbl_mitarbeiter.titel_ID
       AND tbl_abteilung.abteilungsname = "Lager"
       AND (plz LIKE "014%" OR bruttolohn > 540)

Abfrage ausführen  In diesem Beispiel wird deutlich, dass die Klammerung notwenig wird. Denn wir suchen hier nur Lagerarbeiter, die entweder im Postleitzahlenbereich 014.. wohnen oder mehr als 540,00 Euro verdienen. Lässt man die Klammerung weg, werden zuerst die AND-Verknüpfungen ausgeführt und das Ergebnis wird falsch.
Probieren Sie es ruhig aus!

Um nicht endlos lange Zeilen zu produzieren und unterscheiden zu können, welcher Teil der WHERE-Anweisung zur Verknüpfung und welcher zum Einschränken der Ergebnisse dient, sollte die WHERE-Anweisung auf zwei oder mehr Zeilen aufgeteilt werden.

Bemerkung:
Ihnen wird sicher nicht entgangen sein, dass in manchen Fällen bei den Abfragen vor den Attributen die Tabellenbezeichnung geschrieben wurde und manchmal nicht.
Die Verknüpfung des Attributes mit dem Tabellennamen ist erforderlich, wenn in zwei oder mehreren Tabellen Attribute mit den gleichen Bezeichnungen auftreten!